Virtual machines allow many computing environments (e.g., general desktop environments, database servers, web services, etc.) to be implemented within one or more host computing devices. A virtual machine may comprise its own operating system, applications, and configurations. As such, a virtual machine may function as a self-contained computing environment (even though it is virtual rather than physical). Moreover, one or more virtual machines may be instantiated on a single host computing device, such as a desktop, laptop, server, storage controller, etc.
Virtual machines essentially share resources of physical host computing devices and can run applications software, etc. to accomplish tasks, such as testing, etc. that may otherwise be inefficient to perform in the absence of virtual machines. For example, if different variations of a website are to be tested, respective versions of the website may be hosted on different virtual machines to allow for concurrent testing, for example. Moreover, since virtual machines are virtual (e.g., do not actually comprise physical components themselves) they may be somewhat disposable such that they may be reset, disposed of, etc. (e.g., if respective versions of website they are hosting produce undesirable results). Nevertheless, virtual machines may rely on one another, such as where a website hosted by a first virtual machine may use data from a second virtual machine.
Unfortunately, since virtual machines are relatively easy and inexpensive to create, it is not uncommon for additional virtual machines to be created instead of resetting, deleting, etc. existing virtual machines. Thus, many virtual machines may accumulate where the importance, relevance, purpose, etc. of respective virtual machines may be lost or forgotten. However, because virtual machines may depend upon one another, merely deleting, resetting, etc. virtual machines may be problematic as deleting one virtual machine may adversely affect another virtual machine (e.g., if a first virtual machine providing data to a second virtual machine is deleted, then the second virtual machine may not function properly due to the missing data). Interdependencies between virtual machines may not be readily apparent as the number of virtual machines scale quickly from the addition of new virtual machines over time. Thus, while it may be desirable to remove or suspend many virtual machines (e.g., for housekeeping and/or other purposes), that may not be possible without adversely affecting at least some remaining virtual machines.